package com.wxxymaker.edu.controller.view;

import com.blade.mvc.annotation.GetRoute;
import com.blade.mvc.annotation.Path;
import com.blade.mvc.annotation.PathParam;
import com.blade.mvc.http.Request;
import com.wxxymaker.edu.roles.IgnoreAuth;
import com.wxxymaker.edu.roles.StudentRoles;

/**
 * @Author: soft
 * @Date: 2018/7/26 15:14
 * @Desc: 用户路由
 * 至少需要学生权限
 */
@StudentRoles
@Path("/user")
public class UserViewHandler {

    /**
     * 我的学习
     */
    @GetRoute("/learn")
    public String learn() {
        return render("learn");
    }

    /**
     * 我的作业
     */
    @GetRoute("/work")
    public String work() {
        return render("work");
    }

    /**
     * 我的考试
     */
    @GetRoute("/exam")
    public String exam() {
        return render("exam");
    }

    /**
     * 我的笔记
     */
    @GetRoute("/note")
    public String note() {
        return render("note");
    }

    /**
     * 我的提问
     */
    @StudentRoles
    @GetRoute("/asks")
    public String asks() {
        return render("asks");
    }

    /**
     * 我的评价
     */
    @GetRoute("/comment")
    public String comment() {
        return render("comment");
    }

    /**
     * 个人设置/个人信息
     */
    @GetRoute("/setting/info")
    public String info() {
        return render("info");
    }

    @GetRoute("/setting/security")
    public String security() {return render("security");}

/*#####################################################*/

    /**
     * 用户的个人主页，向所有人展示的页面
     * @param uid 用户id
     */
    @IgnoreAuth
    @GetRoute("/:uid/home")
    public String home(Request request,
                       @PathParam(defaultValue = "0") String uid) {
        request.attribute("uid", uid);
        request.attribute("name", uid);
        request.attribute("isTea", false);
        return render("home");
    }

    /**
     * 用户个人主页
     * 个人简介
     * @param uid 用户id
     */
    @IgnoreAuth
    @GetRoute("/:uid/home/intro")
    public String intro(@PathParam String uid) {
        return render("homeIntro");
    }

    /**
     * 用户个人主页
     * 在教课程
     * @param uid 用户id
     */
    @IgnoreAuth
    @GetRoute("/:uid/home/teaching")
    public String teaching(Request request,
                           @PathParam String uid) {
        request.attribute("uid", uid);
        return render("homeCourse");
    }

    /**
     * 用户个人主页
     * 正在学习
     * @param uid 用户id
     */
    @IgnoreAuth
    @GetRoute("/:uid/home/learning")
    public String learning(Request request,
                           @PathParam String uid) {
        request.attribute("uid", uid);
        return render("homeCourse");
    }

    /**
     * 用户个人主页
     * 我的收藏
     * @param uid 用户id
     */
    @IgnoreAuth
    @GetRoute("/:uid/home/collection")
    public  String collection(Request request,
                              @PathParam String uid) {
        request.attribute("uid", uid);
        return render("homeCourse");
    }

    /**
     * 用户个人主页
     * 我的关注
     * @param uid 用户id
     */
    @IgnoreAuth
    @GetRoute("/:uid/home/focus")
    public String focus(@PathParam String uid) {
        return render("homeFocus");
    }

    /**
     * 渲染函数 指定到templates/user目录
     * @param view 视图文件名
     * @return 视图地址
     */
    private String render(String view) {
        return "user/" + view;
    }
}
